package br.com.linkcom.sined.geral.bean;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Transient;

import br.com.linkcom.neo.authorization.User;
import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
import br.com.linkcom.neo.validation.annotation.MaxLength;
import br.com.linkcom.neo.validation.annotation.Required;


@Entity
public class Usuario implements User {
	
	protected Integer cdusuario;
	protected String nome;
	protected String login;
	protected String senha;
	protected List<Usuariopapel> listaUsuariopapel = new ArrayList<Usuariopapel>();
	
	public Usuario(){		
	}
	public Usuario(Integer cdusuario){
		this.cdusuario = cdusuario;
	}
	
	@Id
	public Integer getCdusuario() {
		return cdusuario;
	}
	@Required
	@MaxLength(50)
	@DescriptionProperty
	public String getNome() {
		return nome;
	}
	public String getLogin() {
		return login;
	}
	public String getSenha() {
		return senha;
	}
	@OneToMany(mappedBy="usuario")
	public List<Usuariopapel> getListaUsuariopapel() {
		return listaUsuariopapel;
	}
	
	public void setCdusuario(Integer cdusuario) {
		this.cdusuario = cdusuario;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public void setListaUsuariopapel(List<Usuariopapel> listaUsuariopapel) {
		this.listaUsuariopapel = listaUsuariopapel;
	}
	@Transient
	public String getPassword() {
		return senha;
	}
}